C.S.Burner 🪙 ━►🔥GIT Node
scripts/ci/setup-task.sh master (2bf00cb3) Text, 2.33 KB
T8b949e#!/bin/sh
T8b949e# Install go-task from GitHub releases with SHA256 verification.
T8b949e# Source: https://github.com/go-task/task
T8b949e# Usage: setup-task.sh [version]
Tffa657set -eu
T8b949e# shellcheck source=priv.sh disable=SC1091
. Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Te6edf3$0Ta5d6ff"Tff7b72)Ta5d6ff/priv.shTa5d6ff"
Te6edf3TASK_VERSIONTff7b72=Ta5d6ff"Tffd700${Te6edf31Tff7b72:-Te6edf33Tb4b4b4.49.1Tffd700}Ta5d6ff"
Te6edf3ARCHTff7b72=Ta5d6ff"Tff7b72$(uname -mTff7b72)Ta5d6ff"
Tff7b72case Ta5d6ff"Te6edf3$ARCHTa5d6ff" Tff7b72in
x86_64Tff7b72) Te6edf3ARCHTff7b72=Ta5d6ff"amd64" Tb4b4b4;Tb4b4b4;
aarch64Tff7b72) Te6edf3ARCHTff7b72=Ta5d6ff"arm64" Tb4b4b4;Tb4b4b4;
*Tff7b72) Tffa657echo Ta5d6ff"Ta5d6ffUnsupported architecture: Te6edf3$ARCHTa5d6ff" >Tb4b4b4&T79c0ff2Tb4b4b4; Tffa657exit T79c0ff1 Tb4b4b4;Tb4b4b4;
Tff7b72esac
Te6edf3BASE_URLTff7b72=Ta5d6ff"Ta5d6ffhttps://github.com/go-task/task/releases/download/vTffd700${Te6edf3TASK_VERSIONTffd700}Ta5d6ff"
Te6edf3TARBALLTff7b72=Ta5d6ff"Ta5d6fftask_linux_Tffd700${Te6edf3ARCHTffd700}Ta5d6ff.tar.gzTa5d6ff"
T8b949e# GitHub release CDN over HTTP/2 can drop the stream (curl 56, "tried 5 times").
T8b949e# Default curl --retry skips that recv error. HTTP/1.1 plus --retry-all-errors
T8b949e# recovers from 503 and dropped connections. GITHUB_TOKEN / GH_TOKEN avoids
T8b949e# unauthenticated github.com rate limits. -L strips Authorization on the
T8b949e# objects.githubusercontent.com redirect.
download_releaseTff7b72(Tff7b72) Tff7b72{
Te6edf3destTff7b72=Ta5d6ff"Te6edf3$1Ta5d6ff"
Te6edf3urlTff7b72=Ta5d6ff"Te6edf3$2Ta5d6ff"
Te6edf3tokenTff7b72=Ta5d6ff"Tffd700${Te6edf3GITHUB_TOKENTff7b72:-Tffd700${Te6edf3GH_TOKENTff7b72:-Tffd700}Tffd700}Ta5d6ff"
Tff7b72if Tff7b72[ -n Ta5d6ff"Te6edf3$tokenTa5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
curl -fsSL --http1.1 Tffea00\
--retry T79c0ff8 Tffea00\
--retry-all-errors Tffea00\
--retry-delay T79c0ff4 Tffea00\
--retry-max-time T79c0ff180 Tffea00\
--connect-timeout T79c0ff20 Tffea00\
--max-time T79c0ff180 Tffea00\
-H Ta5d6ff"Ta5d6ffAuthorization: Bearer Tffd700${Te6edf3tokenTffd700}Ta5d6ff" Tffea00\
-o Ta5d6ff"Te6edf3$destTa5d6ff" Tffea00\
Ta5d6ff"Te6edf3$urlTa5d6ff"
Tff7b72else
curl -fsSL --http1.1 Tffea00\
--retry T79c0ff8 Tffea00\
--retry-all-errors Tffea00\
--retry-delay T79c0ff4 Tffea00\
--retry-max-time T79c0ff180 Tffea00\
--connect-timeout T79c0ff20 Tffea00\
--max-time T79c0ff180 Tffea00\
-o Ta5d6ff"Te6edf3$destTa5d6ff" Tffea00\
Ta5d6ff"Te6edf3$urlTa5d6ff"
Tff7b72fi
Tff7b72}
Tffa657echo Ta5d6ff"Ta5d6ffInstalling Task vTffd700${Te6edf3TASK_VERSIONTffd700}Ta5d6ff (Tffd700${Te6edf3ARCHTffd700}Ta5d6ff)Ta5d6ff"
download_release /tmp/task-checksums.txt Ta5d6ff"Tffd700${Te6edf3BASE_URLTffd700}Ta5d6ff/task_checksums.txtTa5d6ff"
download_release /tmp/task.tar.gz Ta5d6ff"Tffd700${Te6edf3BASE_URLTffd700}Ta5d6ff/Tffd700${Te6edf3TARBALLTffd700}Ta5d6ff"
Te6edf3EXPECTEDTff7b72=Ta5d6ff"Tff7b72$(grep Ta5d6ff"Ta5d6ff Tffd700${Te6edf3TARBALLTffd700}Ta5d6ff\$Ta5d6ff" /tmp/task-checksums.txt Tb4b4b4| cut -dTa5d6ff' ' -f1Tff7b72)Ta5d6ff"
Te6edf3ACTUALTff7b72=Ta5d6ff"Tff7b72$(sha256sum /tmp/task.tar.gz Tb4b4b4| cut -dTa5d6ff' ' -f1Tff7b72)Ta5d6ff"
Tff7b72if Tff7b72[ -z Ta5d6ff"Te6edf3$EXPECTEDTa5d6ff" Tff7b72] Tff7b72|| Tff7b72[ Ta5d6ff"Te6edf3$EXPECTEDTa5d6ff" !Tff7b72= Ta5d6ff"Te6edf3$ACTUALTa5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ffSHA256 verification failed for Tffd700${Te6edf3TARBALLTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff"Ta5d6ff expected: Tffd700${Te6edf3EXPECTEDTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff"Ta5d6ff got: Tffd700${Te6edf3ACTUALTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
rm -f /tmp/task.tar.gz /tmp/task-checksums.txt
Tffa657exit T79c0ff1
Tff7b72fi
Tffa657echo Ta5d6ff"Ta5d6ffSHA256 verified: Tffd700${Te6edf3ACTUALTffd700}Ta5d6ff"
run_priv tar -xzf /tmp/task.tar.gz -C /usr/local/bin task
rm -f /tmp/task.tar.gz /tmp/task-checksums.txt
task --version
Served by rngit 1.4.2 - Generated in 0.02s